#!/bin/bash

# 启动脚本 - 用于快速启动项目

echo "=== Flutter + Golang 加密通讯示例 ==="
echo ""

# 检查是否有Go环境
if ! command -v go &> /dev/null; then
    echo "❌ Go 未安装，请先安装 Go 环境"
    exit 1
fi

# 检查是否有Flutter环境
if ! command -v flutter &> /dev/null; then
    echo "❌ Flutter 未安装，请先安装 Flutter 环境"
    exit 1
fi

echo "✅ 环境检查完成"
echo ""

# 启动Go服务器
echo "🚀 启动 Golang 服务器..."
cd golang_server

# 初始化Go模块（如果需要）
if [ ! -f "go.sum" ]; then
    echo "📦 初始化Go模块..."
    go mod tidy
fi

# 后台启动服务器
echo "🌐 服务器启动中... (http://localhost:8080)"
go run main.go &
SERVER_PID=$!

# 等待服务器启动
sleep 3

# 检查服务器是否启动成功
if curl -f http://localhost:8080/health > /dev/null 2>&1; then
    echo "✅ 服务器启动成功"
else
    echo "❌ 服务器启动失败"
    kill $SERVER_PID
    exit 1
fi

echo ""
echo "🎯 测试服务器接口:"
echo "   健康检查: curl http://localhost:8080/health"
echo ""

# 设置Flutter客户端
echo "📱 设置 Flutter 客户端..."
cd ../flutter_client

# 获取Flutter依赖
echo "📦 获取Flutter依赖..."
flutter pub get

echo ""
echo "🎉 项目设置完成！"
echo ""
echo "📋 使用说明:"
echo "   1. 服务器已在后台运行 (PID: $SERVER_PID)"
echo "   2. 运行 'flutter run' 启动客户端"
echo "   3. 使用 Ctrl+C 停止服务器"
echo "   4. 默认登录: admin / password123"
echo ""

# 等待用户输入
echo "按 Enter 键停止服务器..."
read

# 停止服务器
echo "🛑 停止服务器..."
kill $SERVER_PID
echo "✅ 服务器已停止"
